package 所有的题类.ZA.链表;

import com.kiwi.nixu.common.LNode;

public class 链表中倒数第k个节点 {

    public static void main(String[] args) {
        LNode lNode1=new LNode(1);
        LNode lNode2=new LNode(2);
        LNode lNode3=new LNode(3);
        LNode lNode4=new LNode(4);
        LNode lNode5=new LNode(5);
        LNode lNode6=new LNode(6);
        lNode1.next=lNode2;
        lNode2.next=lNode3;
        lNode3.next=lNode4;
        lNode4.next=lNode5;
        lNode5.next=lNode6;

        System.out.println(getKthFromEnd(lNode1, 3).data);
    }

    public static LNode getKthFromEnd(LNode head, int k) {
        LNode slowNode=head;
        LNode fastNode=null;
        while(slowNode!=null){
            int c=k;
            while(c>0){
                if(fastNode!=null){
                    fastNode=fastNode.next;
                }else{
                    fastNode=slowNode.next;
                }
                c--;
            }
            if(fastNode==null){
                return slowNode;
            }
            fastNode=null;
            slowNode=slowNode.next;
        }
        return null;
    }
}
